package com.woniuxy.driverschool.service.courseArrangement.parameterMessage;

import java.util.HashMap;

/**
 * @author shichen
 * @create 2021-09-29-15:11
 * @description 教练上课的时间段 interval
 *      其中
 *        1   代表  08:00-09:00
 *        2   代表  09:00-10:00
 *        3   代表  10:00-11:00
 *        4   代表  11:00-12:00
 *        5   代表  14:00-15:00
 *        6   代表  15:00-16:00
 *        7   代表  16:00-17:00
 *        8   代表  17:00-18:00
 */
public enum PeriodType {

    //根据枚举类，创建枚举对象(语法：必须放置代码的第1行)
    PERIOD_ONE(1,"08:00-09:00"),
    PERIOD_TWO(2,"09:00-10:00"),
    PERIOD_THREE(3,"10:00-11:00"),
    PERIOD_FOUR(4,"11:00-12:00"),

    PERIOD_FIVE(5,"14:00-15:00"),
    PERIOD_SIX(6,"15:00-16:00"),
    PERIOD_SEVEN(7,"16:00-17:00"),
    PERIOD_EIGHT(8,"17:00-18:00");

    /**
     * 在枚举中添加属性
     */
    private Integer value;
    private String desc;

    private static HashMap<Integer,PeriodType> map = new HashMap<Integer, PeriodType>();
    //静态代码块
    static{
        for (PeriodType item : PeriodType.values()) {
            map.put(item.getValue(), item);
        }
    }
    /**
     * 创建枚举的构造器(要求：必须私有)
     * @param value
     * @param desc
     */
    private PeriodType(int value,String desc) {
        this.value = value;
        this.desc = desc;
    }
    public int getValue() {
        return value;
    }
    public String getDesc(){
        return desc;
    }

    /**
     * 前台传进来的值通过这个方法来转换为PeriodType类型
     * @param value
     * @return PeriodType
     */
    public static PeriodType getByValue(int value) {
        PeriodType result = map.get(value);
        if(result == null) {
            throw new IllegalArgumentException("No element matches " + value);
        }
        return result;
    }
}
